#include <stdio.h>
#include "cJSON.h"

int main(int argc, char const *argv[])
{
    // 1、设计一个json数据(C语言中字符要有实际意思，需要转义字符\)
    char *json_str = "{\"name\":\"zhangsan\",\"age\":18,\"gender\":\"male\"}";
    
    // 2、把字符串转换为json数据
    cJSON *json_obj = cJSON_Parse(json_str); 
    if (json_obj == NULL)
    {
       // 获取错误的原因
       const char *err = cJSON_GetErrorPtr();  
       printf("解析cjsn失败:%s\n", err);
    }
    else
    {
        printf("解析json成功\n");
    }
    
    // 3、通过键获取值
    // name
    cJSON *value = cJSON_GetObjectItem(json_obj,"name");
    char *str = cJSON_GetStringValue(value);
    printf("name = %s\n", str);

    // age
    value = cJSON_GetObjectItem(json_obj,"age");
    printf("age = %0.1f\n",  cJSON_GetNumberValue(value));

    // gender
    value = cJSON_GetObjectItem(json_obj,"gender");
    str = cJSON_GetStringValue(value);
    printf("gender = %s\n", str);


    // 4、销毁json对象函数
    cJSON_Delete(value);  

    return 0;
}
